package back;

/**
 * Clase que se encarga de la del manejo de un archivo de puntajes una vez leido.
 * Reliza tareas como recibir un archivo y datos para agregarle y poder obtener
 * en base a ellos un nuevo archivo con la informacion acomodada.
 */

public class FormatoPuntaje {

	String[] puntajes;
	
	/**
	 * Constructor de la clase
	 * 
	 * @param puntajes es el array de strings con las lineas de puntajes
	 * levantadas del archivo correspondiente.
	 */
	
	public FormatoPuntaje(String[] puntajes) {
		this.puntajes = puntajes;
	}
	
	/**
	 * Se encarga de agregar en el lugar que corresponde la linea nueva de puntaje, 
	 * quitando si fuera necesario el ultimo de la lista.
	 * 
	 * @param String nombre nombre del jugador a agregar.
	 * @param String puntaje puntos del jugador.
	 * @return String[] array de strings con las lineas a escribir en orden.
	 */
	
	public String[] agregaOrdenado(String nombre, String puntaje) {
		String[] ordenado = new String[11];

		int indice = 1;
		while(indice < 11 && puntajes[indice] != null) {
			if(Integer.valueOf(puntaje) > Integer.valueOf(puntajes[indice].split(" ")[2])) {
				break;
			}
			indice++;
		}
		
		for(int i = 0; i < indice; i++) {
			ordenado[i] = puntajes[i];
		}
		ordenado[indice] = indice + "." + " " + nombre + " " + puntaje;
		
		for(int i = indice + 1; i < 11 && puntajes[i-1] != null; i++) {
			String[] parse = puntajes[i-1].split(" ");
			ordenado[i] = i + "." + " " + parse[1] + " " + parse[2];
		}

		return ordenado;
	}
			
}